package com.example.sps.service;

import com.example.sps.pojo.dto.*;
import com.example.sps.pojo.vo.EmpToken;
import com.example.sps.pojo.vo.PageVO;

import java.io.IOException;
import java.util.List;

public interface ProductService {
    PageVO parameterPage(CommonPageQueryDTO commonPageQueryDTO);

    void updateParameter(ParameterUpdateOrAddDTO parameterUpdateOrAddDTO, EmpToken empToken);

    void addParameter(ParameterUpdateOrAddDTO parameterUpdateOrAddDTO, EmpToken empToken);

    void deleteParam(Integer id);

    void deleteParamBatch(List<Integer> ids);

    void updateParamStatus(ParameterStatusDTO parameterStatusDTO, EmpToken empToken);

    PageVO smClassPage(CommonPageQueryDTO commonPageQueryDTO);

    void addSmClass(SmClassUpdateOrAddDTO smClassUpdateOrAddDTO, EmpToken empToken);

    void updateSmClass(SmClassUpdateOrAddDTO smClassUpdateOrAddDTO, EmpToken empToken);

    void updateSmClassStatus(SmClassStatusDTO smClassStatusDTO, EmpToken empToken);

    void addSmProduct(SmProductDTO smProductDTO, EmpToken empToken);

    void deleteSmClass(Integer id);

    void deleteSmclassBatch(List<Integer> ids);

    PageVO smProductPage(SmProductQueryDTO smProductQueryDTO);

    void updateSmProduct(SmProductDTO smProductDTO, EmpToken empToken);

    void updateSmProductStatus(SmProductStatusDTO smProductStatusDTO, EmpToken empToken);

    void deleteSmProduct(Long id);

    void deleteSmProductBatch(List<Long> ids);

    PageVO homeClassPage(CommonPageQueryDTO commonPageQueryDTO);

    void addHomeClass(HomeClassUpdateOrAddDTO homeClassUpdateOrAddDTO, EmpToken empToken);

    void updateHomeClass(HomeClassUpdateOrAddDTO homeClassUpdateOrAddDTO, EmpToken empToken);

    void updateHomeClassStatus(HomeClassStatusDTO homeClassStatusDTO, EmpToken empToken);

    void deleteHomeClass(Integer id);

    void deleteHomeClassBatch(List<Integer> ids);

    void addHomeProduct(HomeProductDTO homeProductDTO, EmpToken empToken);

    PageVO homeProductPage(HomeProductQueryDTO homeProductQueryDTO);

    void updateHomeProduct(HomeProductDTO homeProductDTO, EmpToken empToken);

    void updateHomeProductStatus(HomeProductStatusDTO homeProductStatusDTO, EmpToken empToken);

    void deleteHomeProduct(Long id);

    void deleteHomeProductBatch(List<Long> ids);

    void addProject(ProjectDTO projectDTO, EmpToken empToken);

    PageVO ProjectPage(ProjectQueryDTO projectQueryDTO);

    void updateProject(ProjectDTO projectDTO, EmpToken empToken);

    void updateProjectStatus(ProjectStatusDTO projectStatusDTO, EmpToken empToken);

    void deleteProject(Integer id);

    void deleteProjectBatch(List<Integer> ids);
}
